import Vue from 'vue'
import Vuex from 'vuex'
import user from './modules/user'
Vue.use(Vuex)

export default new Vuex.Store({
  state: {
    count: 1
  },
  getters: {
    count1 (state) {
      return state.count * 2
    }
  },
  mutations: {
    addCount (state, payload) {
      state.count += payload
    },
    subCount (state, payload) {
      state.count -= payload
    }
  },
  actions: {
    // context 上下文 指向就是store 实例
    addAsync (context) {
      setTimeout(() => {
        context.commit('subCount', 2)
      }, 2000)
    }
  },
  modules: {
    user
  }
})

// mutations中只能写同步代码
// 只有actions中才能写异步代码 async

// const obj = {
//   a: 100,
//   fn () {
//     console.log(this.a)
//   }
// }

// 张三说 这是张三的手机
// 张三说 这是我的手机

// 用户模块
// 商品模块
// 文章模块
